// /**
//     算法描述：
//     核心问题：
//     解决所需数据结构+算法：
// **/
// #include<iostream>
// using namespace std;
// int main() {
//     int n;
//     cin >> n;
//     // 改用递推公式计算Catalan数
//     long long c = 1;
//     for(int i = 1; i <= n; i++) {
//         c = c * (4*i - 2) / (i + 1);
//     }
//     cout << c << endl;
//     return 0;
// }

#include<iostream>
#include<cstring>
using namespace std;
int main() {
    int n;
    cin >> n;
    long long dp[20]; // 假设n范围在0-15之间，根据题目调整数组大小
    memset(dp, 0, sizeof(dp)); // 初始化dp数组为0
    dp[0] = 1; // 初始条件
    
    // 动态规划递推
    for(int i = 1; i <= n; i++) {
        for(int j = 0; j < i; j++) {
            dp[i] += dp[j] * dp[i - 1 - j];
        }
    }
    
    cout << dp[n] << endl;
    return 0;
}